package StudyCode.summary;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 版权所有 科技与人文(www.tah1986.com)
 */
public class OpensFileOutputStream {
	public static void main(String[] argv) throws Exception {
		File file = new File("E:\\Copy\\1.txt");
		FileOutputStream fileOutputStream = openOutputStream(file);
		System.out.println(file.getPath() + " FileOutputStream 创建成功？" + String.valueOf(fileOutputStream != null));
	}

	private static FileOutputStream openOutputStream(File file) throws IOException {
		if (file.exists()) {
			if (file.isDirectory()) {
				throw new IOException("文件 '" + file + "' 存在，但是个目录");
			}
			if (!file.canWrite()) {
				throw new IOException("文件 '" + file + "' 不能写入");
			}
		} else {
			File parent = file.getParentFile();
			if (parent != null && !parent.exists()) {
				if (!parent.mkdirs()) {
					throw new IOException("文件 '" + file + "' 不能被创建");
				}
			}
		}
		return new FileOutputStream(file);
	}
}
